package main

import (
	"github.com/starmotioncf/common/db"
	"github.com/starmotioncf/common/log"
	"github.com/starmotioncf/common/openapi"
	"github.com/starmotioncf/common/redis"
	"github.com/starmotioncf/common/server/http"
	"github.com/starmotioncf/common/server/pprof"
	"github.com/starmotioncf/soutchatinternal/service"
	"github.com/starmotioncf/soutchatpkg/account"
	"github.com/starmotioncf/soutchatpkg/jwt"
	"github.com/starmotioncf/soutchatpkg/notify"
	"github.com/starmotioncf/soutchatpkg/sms"
	"github.com/starmotioncf/soutchatpkg/storage"
)

type Config struct {
	Api   http.Config
	Pprof pprof.Config

	Log       log.Config
	Db        db.MsConfig
	Redis     redis.Config
	Openapi   openapi.Config
	RateLimit redis.RateLimiterConfig

	Payment   service.PaymentConfig
	ThirdGame service.ThirdGameConfig

	Account account.Config
	Jwt     jwt.Config
	Notify  notify.Config
	Sms     sms.Config
	Storage storage.Config
}
